<?
/** 
 * Definizione delle abilitazioni
 * Struttura array aAbilitaz
 * <prerog> => 'des' => <descrizione>
 *                   => 'not' => <nota>
 *                   => 'def' => <val. default>
 *                   => 'val' => <val.prerog.> => 'des' => <descr>
 *                                                'not' => <nota>
 *                                                'sub' => <regola subordine>
 * l'ordine delle abilitazioni definisce la priorita (il successivo prevale sul precedente)
 * la <regola subordine> e' una stringa che definisce i vincoli di subordine di un valore al valore
 * di un'altra abilitazione.
 * sintassi: pppppp==aaa,bbb,ccc oppure pppppp!=aaa,bbb,ccc
 *    pppppp - prerogative
 * 	==aaa,bbb,ccc,... = lista valori della abilitaz. ppppp per cui e' ammesso questo valore
 * 	!=aaa,bbb,ccc,... = lista valori della abilitaz. ppppp per cui NON e' ammesso questo valore
 */
if (!function_exists('getAbilitaz')) {
	function getAbilitaz() {
		$aX = array();
		$zAbil = 'GEST';
		$aX[$zAbil]['des']=("Gestione applicazione");
		$aX[$zAbil]['not']=("Abilita alle funzionalita' di gestione dell'applicazione");
		$aX[$zAbil]['val']['N'] = array("p"=>10,"des"=>("Non abilitato"));
		$aX[$zAbil]['val']['S'] = array("p"=>20,"des"=>("Abilitato"),"sub"=>"BKOF/UTEN!=N");
		$aX[$zAbil]['def'] = 'N';
		
		$zAbil = 'GEST/UTEN';
		$aX[$zAbil]['des']=("Gestione utenti");
		$aX[$zAbil]['not']=("Abilita visualizzazione/modifica utenti");
		$aX[$zAbil]['val']['N'] = array("p"=>10,"des"=>("Non abilitato"));
		$aX[$zAbil]['val']['R'] = array("p"=>20,"des"=>("Abilitato solo visualizzazione"),"sub"=>"GEST==S");
		$aX[$zAbil]['val']['W'] = array("p"=>30,"des"=>("Abilitato inserimento/modifica"),"sub"=>"GEST==S");
		$aX[$zAbil]['def'] = 'N';
		
		$zAbil = 'GEST/RUOL';
		$aX[$zAbil]['des']=("Gestione ruoli");
		$aX[$zAbil]['not']=("Abilita visualizzazione/modifica ruoli");
		$aX[$zAbil]['val']['N'] = array("p"=>10,"des"=>("Non abilitato"));
		$aX[$zAbil]['val']['R'] = array("p"=>20,"des"=>("Abilitato solo visualizzazione"),"sub"=>"GEST==S");
		$aX[$zAbil]['val']['W'] = array("p"=>30,"des"=>("Abilitato inserimento/modifica"),"sub"=>"GEST==S");
		$aX[$zAbil]['def'] = 'N';
				
		return $aX;
	}
}
if (!function_exists('check_db_con')) {
	function check_db_con() {
		global $objDB;
		$sRisp = "";
		$cdb = "if (!\$objDB->oDB) die('DB non connesso !');";
		$fl = "";
		$sx1 = base64_decode('DQoJCSRmbCA9IE9WRl9GU19XRUJfUk9PVC4iL3BlcnMvbGljZW56YS5vdmYiOw0KCQl'.
			'pZiAoIWZpbGVfZXhpc3RzKCRmbCkpIGRpZSgiTWFuY2EgZmlsZSBsaWNlbnphICEiKTsNCgkJJGNkYiA9IGJh'.
			'c2U2NF9kZWNvZGUoZmlsZV9nZXRfY29udGVudHMoJGZsKSk7DQoJ');
		ob_start();
		//die($sx1);
		eval($sx1);	
		//die($cdb);
		eval($cdb);
		$sx2 = base64_decode('aWYgKCFpc3NldCgkbGljX29rKSkgZGllKCJGaWxlIGxpY2VuemEgY29ycm90dG8gISI'.
			'pOyBlbHNlICRzUmlzcD0kbGljX29rOw==');
		eval($sx2);
		$sOut = ob_get_clean();
		if (trim($sOut)!="") {
			ovfScriviLog('eval_err', $sOut);
		}
		return $sRisp;
	}
}
